Workshop
;Datei       : listing5.asm
;Beschreibung: Ein einfacher Screen.
;Autor       : Enrico Bauermeister
;Datum       : 14.12.1997
;Assembler   : TFA AsmOne v1.30
;===================================

;Interrupts sperren - Betriebssystem ausschalten
;-----------------------------------------------
 move.w   #$4000,$dff09a

;Sprites ausschalten (sonst stören die nur)
;------------------------------------------
 move.w   #$0020,$dff096

;Adresse der Bitplane in die Bitplanepointer eintragen
;-----------------------------------------------------
;Zuerst wird das Low-Word in $dff0e2 und anschließend das High-Word in
;$dff0e0 eingetragen.
;-----------------------------------------------------
 move.l   #Plane,d0    ;Plane-Aresse nach d0
 move.w   d0,plane1+6  ;Low-Word eintragen
 swap     d0           ;Words in d0 vertauschen
 move.w   d0,plane1+2  ;High-Word eintragen

;Copperliste aktivieren
;----------------------
 move.l   #Copperliste,$dff084

;Warten auf Rasterstrahl (eine 1/50 Sekunde)
;-------------------------------------------
wait:
 move.l   $dff004,d0
 and.l    #$fff00,d0
 cmp.l    #$00003000,d0
 bne.s    wait

;Linke Maustaste gedrückt ?
;--------------------------
 btst     #6,$bfe001
 bne.s    wait

;Sprites wieder einschalten
;--------------------------
 move.w   #$8020,$dff096

;Interrupts wieder erlauben
;--------------------------
 move.w   #$c000,$dff09a

;Programmende
;------------
 moveq    #0,d0
 rts

;Copperliste
;-----------
 SECTION Cl,CODE_C
Copperliste:
 dc.w     $008e,$2c81  ;DIWSTRT
 dc.w     $0090,$2cc1  ;DIWSTOP
 dc.w     $0092,$0038  ;DDFSTRT
 dc.w     $0094,$00d0  ;DDFSTOP
 dc.w     $0100,$1200  ;BPLCON0
 dc.w     $0108,$0000  ;BPL1MOD
 dc.w     $010a,$0000  ;BPL2MOD
plane1:
 dc.w     $00e0,$0000  ;BPL1PTH
 dc.w     $00e2,$0000  ;BPL1PTL
 dc.w     $0180,$0000  ;COLOR00
 dc.w     $0182,$0fff  ;COLOR01
 dc.w     $ffff,$fffe  ;Copperlistenende

;Bitplane
;--------
 SECTION Bp,BSS_C
Plane:
 ds.b     10240

 END

Zurück zum Programmierkurs